/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao.advanced;

import ecfdb.Depot;
import ecfdb.Vente;
import ecfdb.Vente_;
import java.io.Serializable;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

/**
 *
 * @author SIDALI
 */
public class VentesJpaAdvancedController implements Serializable {

    private CriteriaBuilder qb;
    private CriteriaQuery<Vente> cqVente;
    private Root<Vente> rVente;
    private Predicate pVente;
    private TypedQuery<Vente> tqVente;
    private List<Vente> lVente;

    public VentesJpaAdvancedController(EntityManagerFactory emf) {
        this.emf = emf;
    }
    private EntityManagerFactory emf = null;

    public EntityManager getEntityManager() {
        return emf.createEntityManager();
    }

//    public boolean exist(String champ) {
//
//        qb = getEntityManager().getCriteriaBuilder();
//
//        CriteriaQuery<Vente> c = qb.createQuery(Vente.class);
//        Root<Vente> p = c.from(Vente.class);
//        Predicate condition;
//        condition = qb.like(p.get(Vente_.champscol), champ);
//        c.where(condition);
//        TypedQuery<Vente> q = getEntityManager().createQuery(c);
//        List<Vente> result = q.getResultList();
//        if (result.isEmpty()) {
//            return false;
//        } else {
//            return true;
//        }
//    }
//
//    public Vente find(String champ) {
//        qb = getEntityManager().getCriteriaBuilder();
//
//        CriteriaQuery<Vente> c = qb.createQuery(Vente.class);
//        Root<Vente> p = c.from(Vente.class);
//        Predicate condition = qb.like(p.get(Vente_.champscol), champ);
//        c.where(condition);
//        TypedQuery<Vente> q = getEntityManager().createQuery(c);
//        List<Vente> result = q.getResultList();
//        if (result.isEmpty()) {
//            return null;
//        } else {
//            return result.get(0);
//        }
//    }

    public List<Vente> findWTables(Depot depot) {
        qb = getEntityManager().getCriteriaBuilder();
        cqVente = qb.createQuery(Vente.class);
        rVente = cqVente.from(Vente.class);
        pVente = qb.equal(rVente.get(Vente_.depot), depot);
        cqVente.where(pVente);
        tqVente = getEntityManager().createQuery(cqVente);
        lVente = tqVente.getResultList();
        return lVente;
    }
}
